package cn.iocoder.yudao.module.pay.bill.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.math.BigDecimal;

@Schema(description = "管理后台 - 账单创建 Request VO")
@Data
public class PayBillCreateReqVO {

    @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9419")
    @NotNull(message = "用户id不能为空")
    private Long userId;

    @Schema(description = "关联id", requiredMode = Schema.RequiredMode.REQUIRED, example = "18439")
    @NotNull(message = "关联id不能为空")
    private String relateId;

    @Schema(description = "账单模式：0=支出、1-收入", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "账单模式不能为空")
    private Integer mode;

    @Schema(description = "账单标题", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "账单标题不能为空")
    private String title;

    @Schema(description = "资产种类", requiredMode = Schema.RequiredMode.REQUIRED, example = "money")
    @NotNull(message = "资产种类不能为空")
    private String category;

    @Schema(description = "明细类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "pay_product")
    @NotNull(message = "明细类型不能为空")
    private String type;

    @Schema(description = "明细数字，若为零钱则单位为分", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "明细数字不能为空")
    private BigDecimal number;

    @Schema(description = "剩余", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "剩余不能为空")
    private BigDecimal balance;

    @Schema(description = "备注")
    private String mark;

}
